# 综合案例一：
# 需求目的：破解密码
# 分析：
# 1.理想状态，一次性搞定
# 2.不理想状态：
# 2.1 一直试，知道破解为止
# 2.2 试一段时间放弃
# 规律：试错这个事没有固定次数（循环） ‐‐> 只能使用while循环
# 结论：次数不确定，可以考虑使用死循环（while后面的条件结果必须是：True），并且不修改计数器
# 1.定义计数器(次数)
# num = 1
# 2.设置while循环条件
# while True:
# # 3.编写循环代码
# # 输入不确定多少次，所以放在循环里面
#     username = input("请输入用户名：")
#     if username == "exit":
#         break
#     password = input("请输入密码：")
#     if username == "admin" and password == "123456":
#         print("登录成功")
#         break
#     else:
#         print("用户名或密码错误")
#     pass


# 总结：
# 1.先按照题目要把主干代码完成
# 2.思考多次模拟登录的方式需要用到循环，而且是死循环
# 3.所有的模拟操作都需要放在死循环里面，同时需要注意判断的先后次序


# 综合案例二：
# 石头剪刀布的游戏
# 分析：
# 角色：电脑、人
# 规则：石头 ‐‐> 剪刀 剪刀 ‐‐> 布 布 ‐‐> 石头
# 结果：人胜利、打平、人输了
# 思考：如何编写判断的条件？
# 条件1：人赢了 ‐‐> (人出1同时电脑出2) 或 （人出2同时电脑出3）或 （人出3同时电脑出1）
# 条件2：打平 ‐‐> 人出的和电脑一样
# 条件3：人输了‐‐> 上述条件都不满足
# 0.导入随机数包【导包必须放在代码最上方】
import random
# 1.定义变量（角色）
# player = int(input("请输入数字(1/2/3) : "))
# computer = random.randint(1, 3)
# 2.出拳判断(条件：player的数字和computer的数字是否一致)
# 条件1：人赢了各种情况考虑进去
# if (player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1):
#     print("电脑你太菜了，哈哈哈")
# 条件2：打平了
# elif player == computer:
#     print("打平了，咱俩心有灵犀")
# 条件3：人输了
# else:
#     print("电脑你太厉害了")


# 综合案例三：
# 需求：
# 1.用户输入手机号、密码、验证码
# 2.对于输入的手机号、密码、验证码去除两端空格
# 3.手机号为空时，提示“手机号不能为空”
# 4.密码为空时，提示“密码不能为空”
# 5.验证码为空时，提示“验证码不能为空”
# 6.手机号格式不正确时，提示“手机号格式错误，请输入11位数字”
# 7.验证码统一转换为小写进行判断，正确验证码为“8888”，验证码错误、提示“验证码与图片内容不一致”
# 8.正确手机号为“13488888888”，手机号错误时，提示“手机号不存在”
# 9.正确密码为“123456”，错误密码时，提示“密码域账号不匹配”
# 10.手机号为“13488888888”、密码为“123456”、验证码为“8888”时，输出“登陆成功”
# 方式一
# 输入手机号、密码、验证码，并且去除两头空格
# username = input("请输入手机号").strip()
# password = input("请输入密码：").strip()
# code = input("请输入验证码：").strip()
# # 判断是否为空
# if username == "":
#     print("手机号不能为空")
# if password == "":
#     print("密码不能为空")
# if code == "":
#     print("验证码不能为空")

# 手机号格式不正确【长度不正确、类型不正确】 ‐‐>
# 长度：len(变量名)
# 数字类型：变量名.isdigit() # 是bool值
# if len(username) != 11 or not (username.isdigit()):
#     print("手机号格式不正确")
# # 其他判断
# if code.lower() != "8888":
#     print("验证码错误")
# if username != "13488888888":
#     print("手机号不存在")
# if password != "123456":
#     print("密码错误")
#
#     #都正确
# if username == "13488888888" and password == "123456" and code == "8888":
#     print("登录成功")



# 方式2
# 需求：
# 用户输入手机号、密码、验证码
# 对于输入的手机号、密码、验证码去除两端空格
# phone = input("请输入手机号：").strip()
# pwd = input("请输入密码：").strip()
# code = input("请输入验证码：").lower().strip()
# 手机号为空时，提示“手机号不能为空”
# 手机号格式不正确时，提示"手机号格式错误，请输入11位数字"
# 正确手机号为"13488888888"，手机号错误时，提示"手机号不存在"
# if phone == "":
#     print("手机号不能为空")
# else: # 不为空是进一步判断(长度不对/类型不对)
#     if len(phone) != 11 or not phone.isdigit():
#         print("手机号格式错误")
#     elif phone != "13488888888":
#         print("手机号不存在")

# 手机号为"13488888888"、密码为"123456"、验证码为”8888”时，输出“登录成功”
# 密码为空时，提示“密码不能为空”
# 正确密码为"123456"，密码错误时，提示"密码与账号不匹配"
# 验证码为空时，提示“验证码不能为空”
# 验证码统一转换为小写进行判断，正确验证码为"8888"，验证码错误、提示"验证码与图片内容不一致"
# if phone == "13488888888":
#     if pwd == "":
#         print("密码不能为空")
#     elif pwd != "123456":
#         print("密码与账号不匹配")
#     elif pwd == "123456":
#         if code == "8888":
#             print("登录成功")
#         else:
#             print("验证码错误")
# else:
#     print("数据输入不正确")
